"""
构造一个字典
{
成功：200，失败：403等
"code":
"msg":
"data":
}
jsonresponse返回，格式化数据返回
"""
from django.http import JsonResponse

class ResFormat:
    SUCCESS = 0, '成功' # status
    PARAM_ERROR = 4001, '参数错误'
    UNKNOWN_ERROR = 4100, '未知参数'

    def __init__(self,status='SUCCESS',data=''):
        """
        初始化
        :param status:  响应状态，默认状态是成功
        :param data: 响应数据，默认是空
        """
        if hasattr(self,status): # 检验状态是否存在
            status = getattr(self,status) # 获取指定对象的指定属性
        else:
            status = self.UNKNOWN_ERROR

        self.code,self.msg = status
        self.data = data

    def res(self):
        """
        构造字典
        :return: 字典
        """
        dic = {'code':self.code}

        if self.msg:
            dic['msg'] = self.msg
        if self.data:
            dic['data'] = self.data

        return dic

    def json_response(self):
        """
        返回转义后的json相应对象
        :return: JsonResponse
        """
        return JsonResponse(self.res(),json_dumps_params={'ensure_ascii':False})
        #中文不转化为ascii码
        # json.dumps() 6个字符，json.loads(可以)

